For the IWPR Q1 Update (Jan 2025)

Energy-Water Sankey

# load the data
water_source_target <- read_csv(paste0("../", data_dir, "water_source_target.csv")) 
allenergy_source_target <- read_csv(paste0("../", data_dir, "allenergy_source_target.csv")) 

allenergy_source_target
unique(water_source_target$source)
 [1] "Arkansas White Red"      "California River"        "Caribbean"               "desalination"            "Great"                   "groundwater"             "Lower Colorado River"    "Lower Mississippi River" "Mid Atlantic"            "Missouri River"          "New England"             "Ohio River"             
[13] "Pacific Northwest"       "Rio Grande River"        "runoff"                  "South Atlantic Gulf"     "Tennessee River"         "Texas Gulf Coast"        "Upper Colorado River"    "Upper Mississippi"       "water_td_an_W"           "water_td_dom_W"          "water_td_elec_W"         "water_td_ind_W"         
[25] "water_td_irr_W"          "water_td_pri_W"         
unique(water_source_target$target)
 [1] "desalination"                  "groundwater"                   "runoff"                        "water_td_an_W"                 "water_td_dom_W"                "water_td_elec_W"               "water_td_ind_W"                "water_td_irr_W"                "water_td_pri_W"                "Beef"                         
[11] "Dairy"                         "Pork"                          "Poultry"                       "SheepGoat"                     "municipal water"               "biomass (conv CCS)"            "biomass (conv)"                "biomass (IGCC CCS)"            "biomass (IGCC)"                "coal (conv pul CCS)"          
[21] "coal (conv pul)"               "coal (IGCC CCS)"               "coal (IGCC)"                   "CSP"                           "CSP (dry_hybrid)"              "gas (CC CCS)"                  "gas (CC)"                      "gas (CT)"                      "gas (steam)"                   "Gen_II_LWR"                   
[31] "Gen_III"                       "geothermal"                    "hydro"                         "PV"                            "refined liquids (CC)"          "refined liquids (CT)"          "refined liquids (steam)"       "industry"                      "biomass"                       "Corn"                         
[41] "FiberCrop"                     "FodderHerb"                    "MiscCrop"                      "OilCrop"                       "OtherGrain"                    "PalmFruit"                     "Rice"                          "RootTuber"                     "SugarCrop"                     "Wheat"                        
[51] "nuclearFuelGenII"              "nuclearFuelGenIII"             "regional coal"                 "regional natural gas"          "regional oil"                  "unconventional oil production"
# write_csv(water_source_target %>% select(source) %>% distinct(), paste0("../", data_dir, "mappings/source_mapping_w.csv"))
# write_csv(water_source_target %>% select(target) %>% distinct(), paste0("../", data_dir, "mappings/target_mapping_w.csv"))

source_mapping_w <- read_csv(paste0("../", data_dir, "mappings/source_mapping_w.csv"))
target_mapping_w <- read_csv(paste0("../", data_dir, "mappings/target_mapping_w.csv"))
water_source_target_mapped <- water_source_target %>% 
  left_join(source_mapping_w, by = c("source")) %>% filter(!is.na(smap)) %>% select(-source, source = smap) %>% 
  left_join(target_mapping_w, by = c("target")) %>% filter(!is.na(tmap)) %>% select(-target, target = tmap) %>%
  group_by(scenario, source, target, year, units) %>% summarise(value = sum(value))

plot_sankey(water_source_target_mapped)
energy_water_source_target <- allenergy_source_target %>% 
  rbind(water_source_target_mapped %>% mutate(value = value * 1e-1)) %>% 
  complete(scenario, year, nesting(source, target), fill = list(value = 0)) %>% 
  select(scenario, source, target, year, value, units)
  

plot_sankey(energy_water_source_target, "Energy-Water Flows in the US", yr = 2050)


# write_csv(energy_water_source_target, paste0("../", data_dir, "energy_water_source_target.csv"))

# TODO: can remove industry, livestock, and domestic water use layers and directly assign them to end uses industry, livestock, and residential respectively
LS0tDQp0aXRsZTogIkVuZXJneS1XYXRlciBGbG93cyBmcm9tIHRoZSBJTTMgR0NBTS1VU0EgU2NlbmFyaW9zIg0KYXV0aG9yOiAiSGFzc2FuIE5pYXppIChoYXNzYW4ubmlhemlAcG5ubC5nb3YpIg0KZGF0ZTogIkxhc3QgY29tcGlsZWQgb24gYHIgZm9ybWF0KFN5cy50aW1lKCksICclZCAlQiwgJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6DQogICAgdG9jOiB0cnVlDQogICAgIyB0b2NfZmxvYXQ6IFRSVUUNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICBkZl9wcmludDogcGFnZWQNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiMgYnkgZGVmYXVsdCBjb2xsYXBzZS9oaWRlIHRoZSBjb2RlDQojIGtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UpDQojIHNldCB3b3JraW5nIGRpcmVjdG9yeSB0byBvbmUgZm9sZGVyIHVwDQpzZXR3ZCgiLi4vIikNCiMgZ2V0d2QoKQ0Kc291cmNlKCIuL1IvZnVuY3Rpb25zLlIiKQ0KYGBgDQoNCiMjIEZvciB0aGUgSVdQUiBRMSBVcGRhdGUgKEphbiAyMDI1KQ0KDQotICAgR29hbDogcGxvdCBhIHdhdGVyIHNhbmtleSwgZW5lcmd5IHNhbmtleSwgZW5lcmd5LXdhdGVyIHNhbmtleSBmb3IgUTEgdXBkYXRlIG9mIHRoZSBFVy1GbG93cyBwcm9qZWN0DQoNCiMjIEVuZXJneS1XYXRlciBTYW5rZXkNCg0KYGBge3IgZmlnLndpZHRoPTEwLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQ0KIyBsb2FkIHRoZSBkYXRhDQp3YXRlcl9zb3VyY2VfdGFyZ2V0IDwtIHJlYWRfY3N2KHBhc3RlMCgiLi4vIiwgZGF0YV9kaXIsICJ3YXRlcl9zb3VyY2VfdGFyZ2V0LmNzdiIpKSANCmFsbGVuZXJneV9zb3VyY2VfdGFyZ2V0IDwtIHJlYWRfY3N2KHBhc3RlMCgiLi4vIiwgZGF0YV9kaXIsICJhbGxlbmVyZ3lfc291cmNlX3RhcmdldC5jc3YiKSkgDQoNCmFsbGVuZXJneV9zb3VyY2VfdGFyZ2V0DQpgYGANCg0KDQpgYGB7ciBmaWcud2lkdGg9MTAsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQp1bmlxdWUod2F0ZXJfc291cmNlX3RhcmdldCRzb3VyY2UpDQp1bmlxdWUod2F0ZXJfc291cmNlX3RhcmdldCR0YXJnZXQpDQoNCiMgd3JpdGVfY3N2KHdhdGVyX3NvdXJjZV90YXJnZXQgJT4lIHNlbGVjdChzb3VyY2UpICU+JSBkaXN0aW5jdCgpLCBwYXN0ZTAoIi4uLyIsIGRhdGFfZGlyLCAibWFwcGluZ3Mvc291cmNlX21hcHBpbmdfdy5jc3YiKSkNCiMgd3JpdGVfY3N2KHdhdGVyX3NvdXJjZV90YXJnZXQgJT4lIHNlbGVjdCh0YXJnZXQpICU+JSBkaXN0aW5jdCgpLCBwYXN0ZTAoIi4uLyIsIGRhdGFfZGlyLCAibWFwcGluZ3MvdGFyZ2V0X21hcHBpbmdfdy5jc3YiKSkNCg0Kc291cmNlX21hcHBpbmdfdyA8LSByZWFkX2NzdihwYXN0ZTAoIi4uLyIsIGRhdGFfZGlyLCAibWFwcGluZ3Mvc291cmNlX21hcHBpbmdfdy5jc3YiKSkNCnRhcmdldF9tYXBwaW5nX3cgPC0gcmVhZF9jc3YocGFzdGUwKCIuLi8iLCBkYXRhX2RpciwgIm1hcHBpbmdzL3RhcmdldF9tYXBwaW5nX3cuY3N2IikpDQpgYGANCg0KDQpgYGB7ciBmaWcud2lkdGg9MTAsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQp3YXRlcl9zb3VyY2VfdGFyZ2V0X21hcHBlZCA8LSB3YXRlcl9zb3VyY2VfdGFyZ2V0ICU+JSANCiAgbGVmdF9qb2luKHNvdXJjZV9tYXBwaW5nX3csIGJ5ID0gYygic291cmNlIikpICU+JSBmaWx0ZXIoIWlzLm5hKHNtYXApKSAlPiUgc2VsZWN0KC1zb3VyY2UsIHNvdXJjZSA9IHNtYXApICU+JSANCiAgbGVmdF9qb2luKHRhcmdldF9tYXBwaW5nX3csIGJ5ID0gYygidGFyZ2V0IikpICU+JSBmaWx0ZXIoIWlzLm5hKHRtYXApKSAlPiUgc2VsZWN0KC10YXJnZXQsIHRhcmdldCA9IHRtYXApICU+JQ0KICBncm91cF9ieShzY2VuYXJpbywgc291cmNlLCB0YXJnZXQsIHllYXIsIHVuaXRzKSAlPiUgc3VtbWFyaXNlKHZhbHVlID0gc3VtKHZhbHVlKSkNCg0KcGxvdF9zYW5rZXkod2F0ZXJfc291cmNlX3RhcmdldF9tYXBwZWQpDQpgYGANCg0KDQpgYGB7ciBmaWcud2lkdGg9MTAsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQplbmVyZ3lfd2F0ZXJfc291cmNlX3RhcmdldCA8LSBhbGxlbmVyZ3lfc291cmNlX3RhcmdldCAlPiUgDQogIHJiaW5kKHdhdGVyX3NvdXJjZV90YXJnZXRfbWFwcGVkICU+JSBtdXRhdGUodmFsdWUgPSB2YWx1ZSAqIDFlLTEpKSAlPiUgDQogIGNvbXBsZXRlKHNjZW5hcmlvLCB5ZWFyLCBuZXN0aW5nKHNvdXJjZSwgdGFyZ2V0KSwgZmlsbCA9IGxpc3QodmFsdWUgPSAwKSkgJT4lIA0KICBzZWxlY3Qoc2NlbmFyaW8sIHNvdXJjZSwgdGFyZ2V0LCB5ZWFyLCB2YWx1ZSwgdW5pdHMpDQogIA0KDQpwbG90X3NhbmtleShlbmVyZ3lfd2F0ZXJfc291cmNlX3RhcmdldCwgIkVuZXJneS1XYXRlciBGbG93cyBpbiB0aGUgVVMiLCB5ciA9IDIwNTApDQoNCg0KIyB3cml0ZV9jc3YoZW5lcmd5X3dhdGVyX3NvdXJjZV90YXJnZXQsIHBhc3RlMCgiLi4vIiwgZGF0YV9kaXIsICJlbmVyZ3lfd2F0ZXJfc291cmNlX3RhcmdldC5jc3YiKSkNCg0KIyBUT0RPOiBjYW4gcmVtb3ZlIGluZHVzdHJ5LCBsaXZlc3RvY2ssIGFuZCBkb21lc3RpYyB3YXRlciB1c2UgbGF5ZXJzIGFuZCBkaXJlY3RseSBhc3NpZ24gdGhlbSB0byBlbmQgdXNlcyBpbmR1c3RyeSwgbGl2ZXN0b2NrLCBhbmQgcmVzaWRlbnRpYWwgcmVzcGVjdGl2ZWx5DQpgYGANCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo=